/**
 * 将给定的 URL 转换为 Base64 字符串
 * @param {string} url 要转换的 URL
 * @returns {Promise<string>} 转换后的 Base64 字符串
 */
export const urlToBase64 = (url) => {
    return new Promise((resolve, reject) => {
        // 创建一个 XMLHttpRequest 对象
        const xhr = new XMLHttpRequest()
        xhr.open('GET', url)
        // 设置响应类型为 blob，以获取图像数据
        xhr.responseType = 'blob'
        // 请求成功时的处理函数
        xhr.onload = () => {
            // 创建一个 FileReader 对象，用于读取 blob 数据
            const reader = new FileReader()
            // 读取完成时的处理函数
            reader.onloadend = () => {
                // 将读取到的数据（Base64 字符串）传递给 resolve 函数
                resolve(reader.result)
            }
            // 读取失败时的处理函数
            reader.onerror = reject
            // 将 blob 数据读取为 Base64 字符串
            reader.readAsDataURL(xhr.response)
        }
        // 请求失败时的处理函数
        xhr.onerror = reject
        // 发送请求
        xhr.send()
    })
}
